package au.com.acpfg.misc.StringMatcher;
import java.util.ArrayList;
import java.util.List;
import org.knime.core.data.DataCell;
import org.knime.core.data.DataType;
import org.knime.core.data.def.IntCell;
import org.knime.core.data.def.StringCell;
public class ExtentReporter implements MatchReporter {
public boolean m_as_string;
public ExtentReporter(boolean as_string) {
m_as_string = as_string;
}
@Override
public DataCell report(StringMatcherNodeModel m, String str)
throws Exception {
List<Extent> match_pos = m.getMatchPos();
if (match_pos == null || match_pos.size() < 1)
return DataType.getMissingCell();
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for (Extent e : match_pos) {
min = Math.min(min, e.m_start);
max = Math.max(max, e.m_end);
}
return (m_as_string) ? new StringCell(str.substring(min, max)) : new StringCell(""+min+"-"+max);
}
}